package cn.pupil.springframework.beans.factory.config;

import cn.pupil.springframework.beans.BeansException;
import cn.pupil.springframework.beans.factory.ConfigurableListableBeanFactory;

/**
 * @Description: Bean工厂的后置处理器接口
 * Spring 框架组建提供的容器扩展机制，允许在 Bean 对象注册(加载Bean定义)后但未实例化之前，
 * 对 Bean 的定义信息 BeanDefinition 执行修改操作。
 * @Author: pupil
 * @Date: 2024/11/6 上午 10:30
 */
public interface BeanFactoryPostProcessor {

    /**
     * 在所有的 BeanDefinition 加载完成后，实例化 Bean 对象之前，提供修改 BeanDefinition 属性的机制
     *
     * @param beanFactory
     * @throws BeansException
     */
    void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;
}
